/*
 * Copyright 2018-10-14 21:39:18 The JA-SIG Collaborative. All rights reserved.
 * distributed with thi file and available online at
 */
package com.lap.scp.erp.domain;

import java.util.Date;

import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import org.springframework.format.annotation.DateTimeFormat;

import com.lap.scd.commons.domain.IntegerDO;

/**
 * <pre>
 *  物料明细明细信息，其中一些通用字段在ModelDO和BaseDO里面，该对象基本上只用于数据保存使用。
 *   对应的表名：materiel_detail
 *
 *	如果说界面业务复杂，有特别需要，需要在额外定义Bean对象来接收界面数据。
 * </pre>
 * 
 * @author 劳水生 Exp
 * @Date 2018-10-14 21:39:18
 * @since 2.0.0
 */
public class MaterielDetailDO extends IntegerDO {
	private static final long serialVersionUID = -8831178463076993693L;
	/**
	 * <pre>
	 * 数据库字段:
	 * 	materiel_id
	 * 备注:
	 *  物料ID;字段的长度:11,是否必填:是。
	 * </pre>
	 */
	private Integer materielId;
	/**
	 * <pre>
	 * 数据库字段:
	 * 	quantity
	 * 备注:
	 *  数量;字段的长度:11,是否必填:是。
	 * </pre>
	 */
	private Integer quantity;
	/**
	 * <pre>
	 * 数据库字段:
	 * 	unit_price
	 * 备注:
	 *  单价;字段的长度:11,是否必填:是。
	 * </pre>
	 */
	private Integer unitPrice;
	/**
	 * <pre>
	 * 数据库字段:
	 * 	remark
	 * 备注:
	 *  备注;字段的长度:512,是否必填:否。
	 * </pre>
	 */
	private String remark;

	/**
	 * 物料信息
	 */
	private MaterielDO materielDO;

	// 页面对象
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	private Date operatDate;
	/**
	 * 页面单价
	 */
	private Double pageUnitPrice;

	/**
	 * @param materielId
	 */
	public void setMaterielId(Integer materielId) {
		this.materielId = materielId;
	}

	/**
	 * @return 物料ID
	 */
	public Integer getMaterielId() {
		return materielId;
	}

	/**
	 * @param quantity
	 */
	public void setQuantity(Integer quantity) {
		this.quantity = quantity;
	}

	/**
	 * @return 数量
	 */
	public Integer getQuantity() {
		return quantity;
	}

	/**
	 * @param unitPrice
	 */
	public void setUnitPrice(Integer unitPrice) {
		this.unitPrice = unitPrice;
	}

	/**
	 * @return 单价
	 */
	public Integer getUnitPrice() {
		return unitPrice;
	}

	/**
	 * @param remark
	 */
	public void setRemark(String remark) {
		this.remark = remark;
	}

	/**
	 * @return 备注
	 */
	public String getRemark() {
		return remark;
	}

	public Double getPageUnitPrice() {
		if (unitPrice != null) {
			pageUnitPrice = unitPrice / 100.0;
		}
		return pageUnitPrice;
	}

	public void setPageUnitPrice(Double pageUnitPrice) {
		if (pageUnitPrice != null) {
			this.unitPrice = (int) Math.rint(pageUnitPrice * 100.0);
		}
		this.pageUnitPrice = pageUnitPrice;
	}

	public MaterielDO getMaterielDO() {
		return materielDO;
	}

	public void setMaterielDO(MaterielDO materielDO) {
		this.materielDO = materielDO;
	}

	public Date getOperatDate() {
		return operatDate;
	}

	public void setOperatDate(Date operatDate) {
		this.operatDate = operatDate;
	}

	@Override
	public String toString() {
		return ReflectionToStringBuilder.toString(this);
	}

}
